package com.zty.services;

import com.zty.BO.FileChunkMeta;
import com.zty.BO.MetaFile;
import com.zty.DTO.FileMeta;
import com.zty.VO.BucketVO;
import com.zty.VO.MetaFileVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @Author ZTY
 * @Description
 * @Date 11:47 2023-12-25
 **/

public interface FileService {

    String upload(String bucketName, MultipartFile file);

    /**
     * 小文件获取meta信息
     * @param bucketName
     * @param filename
     * @return
     */
    MetaFile getMeta(String bucketName, String filename);

    byte[] downloadChunk(FileChunkMeta chunk);

    /**
     * 大文件获取meta信息
     * @param fileMeta
     * @return
     */
    MetaFileVO meta(FileMeta fileMeta);

    String uploadChunk(String bucketName,
                       String filename,
                       String md5,
                       Integer chunkNo,
                       MultipartFile file);

    List<BucketVO> files();

    void delete(String bucketName, String filename);
}
